﻿namespace Digitalmes.Domain.Entities.Mes.Productions;

/// <summary>
/// 产品存档信息。
/// </summary>
[SugarTable("prod_archive")]
public sealed class ProdArchive : EntityBase
{
    /// <summary>
    /// SN
    /// </summary>
    [NotNull]
    public string? Sn { get; set; }

    /// <summary>
    /// 产品编号，没有则为空。
    /// </summary>
    [NotNull]
    public string? ProductCode { get; set; }

    /// <summary>
    /// 工单号，没有则为空。
    /// </summary>
    [NotNull]
    public string? Wo { get; set; }

    /// <summary>
    /// 产线 Id。
    /// </summary>
    public long LineId { get; set; }

    /// <summary>
    /// 产线编号
    /// </summary>
    [NotNull]
    public string? LineCode { get; set; }

    /// <summary>
    /// 工位 Id。
    /// </summary>
    public long WsId { get; set; }

    /// <summary>
    /// 工位编号
    /// </summary>
    [NotNull]
    public string? WsCode { get; set; }

    /// <summary>
    /// 工序 Id，没有则为0。
    /// </summary>
    public long OpId { get; set; }

    /// <summary>
    /// 工序编号，没有则为空。
    /// </summary>
    [NotNull]
    public string? OpCode { get; set; }

    /// <summary>
    /// 过站结果（1->OK，2->NG，3->强制OK，4->强制NG）
    /// </summary>
    public PassEnum PassResult { get; set; }

    /// <summary>
    /// 操作人员
    /// </summary>
    public string? Operator { get; set; }

    /// <summary>
    /// 班次
    /// </summary>
    public string? Shift { get; set; }

    /// <summary>
    /// RFID 编号
    /// </summary>
    public string? Rfid { get; set; }

    /// <summary>
    /// 用时(秒)
    /// </summary>
    public int CycleTime { get; set; }

    /// <summary>
    /// 出站/存档时间
    /// </summary>
    public DateTime ArchiveTime { get; set; }

    /// <summary>
    /// 关联的数据Id。
    /// </summary>
    /// <remarks>与 <see cref="ProdInbound.DataRefId"/> 对应，反复过站时与进站关联。</remarks>
    public long DataRefId { get; set; }
}
